# -*- coding: utf-8 -*-
from django.db import models
from django.core.exceptions import ValidationError
class JogadorDeClube(models.Model):
    "Representa a ligacao de um jogador com um clube"
    jogador = models.ForeignKey('jogadores.Jogador')
    clube = models.ForeignKey('clubes.Clube')
    numero = models.SmallIntegerField(u"Numero do Jogador", blank=False,null=False)
    
    class Meta:
        app_label = 'jogadores'
        unique_together = (
#                           Vazer validacao de jogador e clube com metodo validate_unique
#                           ("jogador", "clube"),
                           ("clube","numero"),
                           )
        
    #sobreescrevendo o validate unique ja que o unique_together nao funciona para
    #restricao de 2 fk juntas
    def clean(self):
        q = JogadorDeClube.objects.all()
        if self.pk : q=q.exclude(pk=self.pk)
        
        if q.filter(jogador=self.jogador,clube=self.clube).exists():
            raise ValidationError(u'Jogador já cadastrado no clube.')
        
#        super(JogadorDeClube, self).clean(exclude=exclude)
    
        
    def __unicode__(self):
        return "%s - %s" % (self.jogador, self.clube)